package com.demo2do.fms.admin.service.business;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.demo2do.fms.admin.entity.export.business.ExpenseSheet;
import com.demo2do.fms.admin.entity.search.business.ExpenseSheetSearch;

/**
 *
 * @author Ark
 *
 */
public interface ExpenseSheetService {
    
    /**
     * 打印报销单-查询
     * 
     * @param search
     * @return
     */
    public int countDispatchOrderRecord(ExpenseSheetSearch search);
    
    /**
     * 打印报销单-查询
     * 
     * @param search
     * @return
     */
    public List<Map<String, Object>> listDispatchOrderRecord(ExpenseSheetSearch search);
    
    /**
     * 获取额定内部用油量
     * 
     * @param dispatchOrderIds
     * @return
     */
    public BigDecimal getInternalOils(List<Long> dispatchOrderIds);
    
    /**
     * 设置内部加油量
     * 
     * @param dispatchOrderIds
     * @param ratedOilUsage
     * @param actualOilUsage
     * @param operator
     */
    public void setupInternalOils(List<Long> dispatchOrderIds, BigDecimal ratedOilUsage, BigDecimal actualOilUsage, Long operator);
    
    /**
     * 打印报销单(构造报销单列表信息)
     * 
     * @param dispatchOrderIds
     * @param operator
     * @return
     */
    public List<ExpenseSheet> listExpenseSheet(List<Long> dispatchOrderIds, Long operator);
    
    /**
     * 打印油费
     * 
     * @param dispatchOrderIds
     * @return
     */
    public List<Map<String, Object>> listOilPrice(List<Long> dispatchOrderIds);
    
    /**
     * 打印油费 - 流水号
     * @param companyCode
     * @return
     */
    public String getOilPriceSequence(String companyCode);
    
}
